package com.ronan.imweb.service;

import com.ronan.common.pojo.RimUmsInfo;
import com.ronan.common.response.Result;
import com.ronan.imweb.req.LoginUmsReq;
import com.ronan.imweb.req.RegisterUmsReq;
import com.ronan.imweb.vo.LoginUmsVo;
import com.ronan.imweb.vo.RegisterUmsVo;

import java.util.Set;

/**
 * FileName    : com.ronan.imweb.service
 * Description :
 *
 * @author : ronan
 * @version : 1.0
 * Create Date : 2021/3/16 13:38
 **/
public interface UmsInfoService {


    /**
     * 1、注册im用户
     *
     * @param req 请求参数
     * @return {@link Result<RegisterUmsVo>}
     */
    Result<RegisterUmsVo> register(RegisterUmsReq req);


    /**
     * 2、登录
     *
     * @param req 请求参数
     * @return {@link Result<LoginUmsVo>}
     */
    Result<LoginUmsVo> login(LoginUmsReq req);

    /**
     * 3、离线
     *
     * @param ums 口头语
     */
    void offline(RimUmsInfo ums);

    /**
     * 4、在线用户
     *
     * @return {@link Result<Set<RimUmsInfo>>}
     */
    Result<Set<RimUmsInfo>> onlineUms();
}
